package com.liliudong.template.common.convert.sys;

import com.liliudong.template.common.dto.sys.SysDeptAddDTO;
import com.liliudong.template.common.dto.sys.SysDeptUpdateDTO;
import com.liliudong.template.common.entity.sys.SysDept;
import com.liliudong.template.common.vo.sys.SysDeptBaseVO;
import com.liliudong.template.common.vo.sys.SysDeptDetailVO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * 系统dept转换
 *
 * @author ldli5
 * @date 2024/6/21-8:52
 */
@Mapper
public interface SysDeptConvert {

	SysDeptConvert INSTANCE = Mappers.getMapper(SysDeptConvert.class);

	/**
	 * dto2实体
	 *
	 * @param sysDeptAddDTO 系统部门添加或更新dto
	 * @return {@link SysDept }
	 */
	SysDept addDto2Entity(SysDeptAddDTO sysDeptAddDTO);

	/**
	 * 更新dto2实体
	 *
	 * @param sysDeptAddDTO 系统部门添加数据
	 * @return {@link SysDept }
	 */
	SysDept updateDto2Entity(SysDeptUpdateDTO sysDeptAddDTO);

	/**
	 * 实体2细节vo
	 *
	 * @param sysDept 系统部门
	 * @return {@link SysDeptDetailVO }
	 */
	SysDeptDetailVO entity2DetailVo(SysDept sysDept);

	/**
	 * 实体2基本vo
	 *
	 * @param sysDeptList 系统部门列表
	 * @return {@link List }<{@link SysDeptBaseVO }>
	 */
	List<SysDeptBaseVO> entity2BaseVO(List<SysDept> sysDeptList);
}
